package org.huawei260.String;

import java.util.Scanner;

/**
 * @author Fql18
 * @Auther: qingle
 * @Date: 2024/10/25-20:44
 * @Description:
 *
 * 环中最长子串
 * 题目描述
 * 给你一个字符串s,首尾相连成一个环形,
 * 请你在环中找出o字符出现了偶数次最长子字符串的长度.
 * 备注:
 * 1 <= s.lenth <= 5x10^5
 * s只包含小写英文字母
 * 输入描述
 * 输入是一个小写字母组成的字符串
 * 输出描述
 * 输出是一个整数
 *
 * 示例一
 * 输入
 * alolobo
 * 输出
 * 6
 * 说明
 * 最长子字符串之一是alolob,它包含2个o
 *
 * 示例二
 * 输入
 * looxdolx
 * 输出
 * 7
 * 说明
 * 最长子字符串oxdolxl,由于是首尾连接一起的,
 * 所以最后一个x和开头的l是连接在一起的此字符串包含2个o
 *
 * @version: 1.0
 */
public class O0077_环中最长子串 {
		public static void main(String[] args) {
			Scanner scanner = new Scanner(System.in);
			String s = scanner.nextLine();
			System.out.println(longestEvenSubstring(s));
		}

		public static int longestEvenSubstring(String s) {
			int n = s.length();
			int[] prefix = new int[n + 1];
			int oCount = 0;
			for (int i = 0; i < n; i++) {
				if (s.charAt(i) == 'o') {
					oCount++;
				}
				prefix[i + 1] = oCount;
			}

			int maxLen = 0;
			for (int i = 1; i <= n; i++) {
				if (prefix[i] % 2 != 0) {
					int len1 = i - 1;
					int len2 = n - i;
					int oddCount = prefix[i] - prefix[0];
					if (oddCount % 2 != 0) {
						len2--;
					}
					maxLen = Math.max(maxLen, len1);
					maxLen = Math.max(maxLen, len2);
				}
			}
			return maxLen;
		}
	}
